from flask import Flask
from .config import Config
from .extensions import db, jwt, cors
from .routes import register_blueprints
import os
from pathlib import Path

# 尝试导入python-dotenv，如果存在则加载.env文件
try:
    from dotenv import load_dotenv
    # 查找并加载.env文件
    env_file = Path(__file__).parent.parent / '.env'
    if env_file.exists():
        load_dotenv(env_file)
except ImportError:
    # 如果没有安装python-dotenv，只记录日志，不影响应用运行
    print("Warning: python-dotenv not installed, environment variables from .env file will not be loaded.")

def create_app(config_class=Config):
    """创建Flask应用实例
    
    Args:
        config_class: 配置类，默认为Config
    
    Returns:
        Flask应用实例
    """
    app = Flask(__name__)
    app.config.from_object(config_class)

    # 初始化扩展
    db.init_app(app)
    jwt.init_app(app)
    cors.init_app(app, resources={"/*": {"origins": "*"}})  # 允许所有来源的跨域请求

    # 注册蓝图
    register_blueprints(app)

    return app
